#ifndef _BIB_SOCKET_H
#define _BIB_SOCKET_H

#pragma warning(disable: 4996)

#include "bib_Abrir_Configuracion.h"
#include "bib_Log.h"

#include <stdlib.h>
#include <string.h>
#include <stdio.h>

#include <winsock2.h>
#pragma comment (lib, "Ws2_32.lib")
#include <WinDef.h>

#define LOWBYTE		2
#define HIGHBYTE	2

#define FLAG_FIN	'f'
#define FLAG_ERROR	'e'

#define PUERTO_FTP	21

#define TAM_DESCRIPTOR_ID 16

typedef struct HEADER_MPS{
	char	descriptorID[TAM_DESCRIPTOR_ID];
	char	payloadDescriptor;
	long	payloadLength;
} HEADER_MPS;

int inicializarWinsock(void);
int finalizarWinsock(void);
int abrirSocket(SOCKET *miSock);	/*socket*/
int cerrarSocket(SOCKET miSock);
int conectar(SOCKET miSock);	/*conect*/
int sendall(SOCKET sock, char *buf, int *len);	/*send*/
int reciveall(SOCKET sock, char *buf, int *len, char *info);	/*recv*/
/*int obtenerMiIP(SOCKET miSock, char *miIP);*/
int enviarMensajeMPS(SOCKET sock, struct HEADER_MPS *header, char *payload);
int recibirMensajeMPS(SOCKET sock, struct HEADER_MPS *header, char *payload);
int generarDescriptorID(char *descriptorID);

#endif